// 使用blink-ts的API来测试基本功能
const { Machine, MachineMode } = require('./blink-ts/dist/index.js');

// 创建一个简单的测试程序，只包含NOP指令
// 这是最基本的指令，应该能被所有虚拟机正确处理
const testProgram = new Uint8Array([
  0x90, // NOP - 空操作
  0x90, // NOP
  0x90  // NOP
]);

// 创建虚拟机实例
const machine = new Machine(MachineMode.LONG);

// 初始化虚拟机
console.log('Initializing machine...');
machine.initialize();

// 加载程序
console.log('Loading test program...');
machine.loadProgram(testProgram, 'test_program');

// 运行虚拟机（限制周期数为10，防止无限循环）
machine.setMaxCycles(10);
console.log('Starting execution...');
const status = machine.run();

// 打印结果
console.log('\nExecution completed.');
console.log(`Status: ${status === 0 ? 'SUCCESS' : 'ERROR'}`);
console.log(`Cycles: ${machine.getCycles()}`);

// 打印寄存器状态
console.log('\nRegister state:');
machine.printState();